From 4abcfe99adfd5268eeccdabc7212311b4172501d Mon Sep 17 00:00:00 2001 From: Alastair Tse Date: Fri, 6 Oct 2006 16:40:39 +0100 Subject: [PATCH] [XEND] Fix check for whether domain is running. Signed-off-by: Alastair Tse --- tools/python/xen/xend/XendAPI.py | 5 ++--- tools/python/xen/xend/XendDomainInfo.py | 4 +++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/python/xen/xend/XendAPI.py b/tools/python/xen/xend/XendAPI.py index e91ee95e11..a33345e295 100644 --- a/tools/python/xen/xend/XendAPI.py +++ b/tools/python/xen/xend/XendAPI.py @@ -953,7 +953,7 @@ class XendAPI: return xen_api_error(XEND_ERROR_VIF_INVALID) cfg = vm.get_dev_xenapi_config('vbd', vbd_ref) if not cfg: - return xen_api_error(XEND_ERROR_UNKNOWN) + return xen_api_error(XEND_ERROR_VIF_INVALID) return xen_api_success(cfg) # class methods @@ -969,7 +969,6 @@ class XendAPI: else: return xen_api_error(XEND_ERROR_DOMAIN_INVALID) - # attributes (rw) def vbd_get_vm(self, session, vbd_ref): xendom = XendDomain.instance() @@ -1014,7 +1013,7 @@ class XendAPI: return xen_api_error(XEND_ERROR_VIF_INVALID) cfg = vm.get_dev_xenapi_config('vif', vif_ref) if not cfg: - return xen_api_error(XEND_ERROR_UNKNOWN) + return xen_api_error(XEND_ERROR_VIF_INVALID) valid_vif_keys = self.VIF_attr_ro + self.VIF_attr_rw + \ self.Base_attr_ro + self.Base_attr_rw for k in cfg.keys(): diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 86c550247f..a4afe1d73e 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -1713,7 +1713,7 @@ class XendDomainInfo: def get_dev_config_by_uuid(self, dev_class, dev_uuid): """ Get's a device configuration either from XendConfig or from the DevController.""" - if self.get_power_state() not in ('Halted',): + if self.get_power_state() in (XEN_API_VM_POWER_STATE_HALTED,): dev = self.info['device'].get(dev_uuid) if dev: return dev[1].copy() @@ -1722,9 +1722,11 @@ class XendDomainInfo: controller = self.getDeviceController(dev_class) if not controller: return None + all_configs = controller.getAllDeviceConfigurations() if not all_configs: return None + for _devid, _devcfg in all_configs.items(): if _devcfg.get('uuid') == dev_uuid: devcfg = _devcfg.copy() -- 2.30.2